import common.CommonDemo;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import java.time.Duration;
import java.util.Set;

/**
 * 浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。
 * 通常，它用于告知服务端两个请求是否来自同一浏览器——如保持用户的登录状态。
 * 
 * Cookie 主要用于以下三个方面：
 *
 * 会话状态管理
 * 如用户登录状态、购物车、游戏分数或其它需要记录的信息
 *
 * 个性化设置
 * 如用户自定义设置、主题和其他设置
 *
 * 浏览器行为跟踪
 * 如跟踪分析用户行为等
 */
public class DeleteCookie {

    private CommonDemo commonDemo;
    private WebDriver driver;
    private WebDriverWait wait;
    private String cookieValue;

    @BeforeTest
    public void setUp() throws Exception{
        commonDemo = new CommonDemo();
        driver = commonDemo.getChromeDriver();
        wait = new WebDriverWait(driver, Duration.ofSeconds(2));
        cookieValue = commonDemo.getPropertyValue("config.properties", "cookie.value");

    }
    @Test
    public void test() throws Exception{
        String url = "https://www.baidu.com";
        driver.get(url);
        driver.manage().window().maximize();
        //添加cookie
        driver.manage().addCookie(new Cookie("cookie1", "test1"));
        driver.manage().addCookie(new Cookie("cookie2", "test2"));
        //删除指定key的cookie
        driver.manage().deleteCookieNamed("cookie1");
        Set<Cookie> cookies = driver.manage().getCookies();
        System.out.println(cookies);
    }
    @AfterTest
    public void tearDown() throws Exception{
        Thread.sleep(2000);
        driver.quit();
    }
}
